﻿using Learun.Util;
using System.Collections.Generic;

namespace Learun.Application.TwoDevelopment.ZZDT_EC
{
    /// <summary>
    /// 版 本 PIT-ADMS V7.0.3 敏捷开发框架
    /// Copyright (c) 2013-2018 Hexagon PPM
    /// 创 建：超级管理员
    /// 日 期：2022-04-11 09:45
    /// 描 述：项目备份表
    /// </summary>
    public interface ec_project_bakupIBLL
    {
        #region 获取数据
        /// <summary>
        /// 获取页面显示列表数据
        /// <summary>
        /// <param name="queryJson">查询参数</param>
        /// <returns></returns>
        IEnumerable<ec_project_bakupEntity> GetList(string queryJson, Pagination pagination = null);
        /// <summary>
        /// 获取实体数据
        /// <param name="keyValue">主键</param>
        /// <summary>
        /// <returns></returns>
        ec_project_bakupEntity GetEntity(string keyValue);
        #endregion

        #region 提交数据

        /// <summary>
        /// 删除实体数据
        /// <param name="keyValue">主键</param>
        /// <summary>
        /// <returns></returns>
        void DeleteEntity(string keyValue);
        /// <summary>
        /// 保存实体数据（新增、修改）
        /// <summary>
        /// <returns></returns>
        void SaveEntity(string projectId, string projectName, string ZipFilesPath, string currentUserId, string currentUserName, long fileSize);
        /// <summary>
        /// 保存实体数据（新增、修改）
        /// <param name="keyValue">主键</param>
        /// <summary>
        /// <returns></returns>
        void OnlySaveEntity(string keyValue, ec_project_bakupEntity entity);
        /// <summary>
        /// 往sqlite里面创建或者添加表
        /// <summary>
        /// <returns></returns>
        void CreateAndAddBySqlit(string ProjectId, List<string> list_tblName, string sqlitePath, string fileBackupPath, string ProjectIndex);
        /// <summary>
        /// 获取sqlite里面的数据还原到数据库
        /// </summary>
        /// <param name="list_tblName">要还原的业务表名</param>
        /// <param name="sqlitePath">sqlite数据库</param>
        /// <param name="fileBackupPath">附件路劲</param>
        /// <param name="ProjectIndex">项目序号</param>
        void RestoreBySqlite(List<string> list_tblName, string sqlitePath, string fileBackupPath, string ProjectIndex);
        #endregion

    }
}
